#-*-coding:utf-8-*-
import re

p = re.compile(
    '[^\._-][\w\.-]+@(?:[A-Za-z0-9]+\.)+[A-Za-z]+$|^0\d{2,3}\d{7,8}$|^1[358]\d{9}$|^147\d{8}$')


def check_addr(addr):
    """
    说明：
    [^\._-][\w\.-]+@(?:[A-Za-z0-9]+\.)+[A-Za-z]+$匹配邮箱。
    综合目前国内常用的邮箱，大概通用的规则包括：
    1、[^\._]，不能以下划线和句点开头。
    2、[\w\.]+，包括字母、数字。而对句点及下划线各提供商有差别，对此有效性不做更严格的判断。
    3、@是必须的。
    4、(?:[A-Za-z0-9]+\.)+[A-Za-z]+$，@后以xxx.xxx结尾，考虑到多级域名，会有这种情况xxx.xxx.xxx如xxx@yahoo.com.cn

    ^0\d{2,3}\d{7,8}$|^1[358]\d{9}$|^147\d{8}$匹配电话号码。
    只考虑国内的情况,大概通用的规则包括：
    1、^0\d{2,3}，固定电话区号3-4位数字，以0开头。
    2、d{7,8}$，固定电话一般7-8位数字。
    3、国内目前的手机号码都是11位数字，三大运营商的号码段基本都在上面列出来了，我们这里除了147的号码的段，其他的都只考虑前两位，
    第三位就不考虑了，否则，工作量也很大。前两位包括13*、15*、18*。

    """
    match = p.match(addr)
    if match:
        if ("@" and ".") in addr:
            return "email"
        else:
            return "sms"
    else:
        return False
